package com.xlh.service.course;

import com.xlh.dto.course.StepDTO;
import com.xlh.param.course.StepParam;
import com.xlh.pojo.course.Step;
import com.xlh.pojo.course.StepChapter;

import java.util.List;

/**
 * 步骤
 * <p>
 * Created by lx on 2020/6/12.
 */
public interface StepService {

    /**
     * 步骤列表
     *
     * @param chapterId 章节id
     * @return
     */
    List<StepDTO> listStep(Long chapterId);

    /**
     * 获取步骤与章节的关联关系
     *
     * @param chapterIds 章节id集合
     * @return
     */
    List<StepChapter> listStepChapter(List<Long> chapterIds);

    /**
     * 创建步骤
     *
     * @param chapterId 章节id
     * @param param     参数
     */
    void createStep(Long chapterId, StepParam param);

    /**
     * 修改步骤
     *
     * @param chapterId 章节id
     * @param id        步骤id
     * @param param     参数
     */
    void updateStepInfo(Long chapterId, Long id, StepParam param);

    /**
     * 删除步骤
     *
     * @param chapterId       章节id
     * @param ids             步骤id集合
     * @param deletedResource 是否删除静态资源
     */
    List<String> deleteStep(Long chapterId, List<Long> ids, boolean deletedResource);

    /**
     * 插入步骤章节
     *
     * @param stepChapter 章节步骤信息
     */
    void insertStepChapter(StepChapter stepChapter);

    void insertBatchStep(List<Step> steps);

    void insertBatchStepChapter(List<StepChapter> stepChapters);

    List<StepChapter> listStepChapterByIds(List<Long> ids);

}
